{"version":3,"file":"./modules/[request].xxxxxxxx.js","mappings":"iKAEe,MAAMA,EAIjB,WAAAC,CAAoBC,EAAgCC,EAA6B,CAAC,GAA9D,KAAAD,UAAAA,EAAgC,KAAAC,QAAAA,EAChDC,KAAKC,OAASD,KAAKF,UAAUI,UAAUC,SAAS,UAChDH,KAAKD,SAAU,QAAWC,KAAKF,UAAWM,OAAOC,OAAOL,KAAKM,oBAAqBN,KAAKD,UACvFC,KAAKO,MACT,CAEQ,IAAAA,GAGJ,OAFAP,KAAKQ,iBAAiBR,KAAKF,UAAWE,KAAKS,qBAC3CT,KAAKU,qBACEV,IACX,CAEQ,iBAAAW,GAEJ,OADAX,KAAKY,OAASZ,KAAKa,iBAAiBb,KAAKF,WAClCE,IACX,CAEQ,gBAAAa,CAAiBC,GACrB,OAAOA,EAAQC,YACnB,CAEQ,iBAAAN,GACJ,OAAOT,KAAKC,OAAS,GAAKD,KAAKD,QAAQiB,gBAAkB,IAC7D,CAEQ,gBAAAR,CAAiBM,EAAsBF,GAG3C,OAFAE,EAAQG,MAAMC,UAAsB,MAAVN,EAAiBA,EAAS,GAE7CZ,IACX,CAEQ,WAAAmB,GAEJ,OADAnB,KAAKC,QAAUD,KAAKC,OACbD,IACX,CAEQ,iBAAAM,GACJ,MAAO,CACHU,gBAAiB,IAEzB,CAEQ,kBAAAN,GAGJ,OAFAU,OAAOC,gBAAgB,UAAU,KAAM,SAA2B,IAAMrB,KAAKsB,YAAY,MAAMC,QAExFvB,IACX,CAEQ,QAAAsB,GACJ,MAAMV,EAASZ,KAAKS,oBACpBT,KAAKQ,iBAAiBR,KAAKF,UAAWc,EAC1C,CAEA,kBAAAY,CAAmBC,GAEf,OADAzB,KAAKD,QAAQiB,gBAAkBS,EACxBzB,IACX,CAEA,MAAA0B,GAGI,OAFA1B,KAAKmB,cACAX,iBAAiBR,KAAKF,UAAWE,KAAKS,qBACpCT,IACX,CAEA,QAAA2B,GACI,OAAO3B,KAAKC,MAChB,CAEA,aAAA2B,GACI,OAAO5B,KAAKY,OAAwC,KAA/BZ,KAAKD,QAAQiB,eACtC,CAGA,KAAAa,GAGI,OAFA7B,KAAKQ,iBAAiBR,KAAKF,WACtBa,oBACEX,IACX,CAEA,MAAA8B,GACI,MAAMlB,EAAUZ,KAAKS,oBAGrB,OAFAT,KAAKQ,iBAAiBR,KAAKF,UAAWc,GAE/BZ,IACX,CAEA,YAAA+B,GACI,OAAO/B,KAAKF,SAChB,E,yECpFJ,MAAMkC,EAAuB,CAAC,eAAgB,uBAAwB,wBAEvD,MAAMC,EACjB,WAAApC,CAAYqC,EAA8B,CAAC,GACvClC,KAAKmC,YAAYD,GACZ3B,MACT,CAEQ,WAAA4B,CAAYD,GAEhB,OADA9B,OAAOgC,QAAQF,GAAUG,SAAQ,EAAEC,EAAMC,KAAavC,KAAKsC,GAAQC,IAC5DvC,IACX,CAEQ,IAAAO,GACJ,MAAMiC,EAAkB,IAAIC,gBAAgBlB,OAAOmB,SAASC,QAC5D3C,KAAK4C,sBAAsBJ,GAC3BxC,KAAK6C,2BAA2BL,GAEhC,MAAMM,EAAS9C,KAAK+C,eAYpB,OAVA3C,OAAOgC,QAAQU,GAAQT,SAAQ,EAAEW,EAAaC,MAC1CjD,KAAKgD,GAAaC,EAAI,IAGtBP,SAASQ,KAAKC,MAAM,UACpB/B,OAAOgC,MAAMC,eAEbC,eAAeC,WAAW,UAGvBvD,IACX,CAEQ,0BAAA6C,CAA2BL,GAC/B,MAAMgB,EAAMhB,EAAgBiB,IAAI,OAEhC,GAAID,EAEA,YADA,QAAU,SAAUA,EAAK,GAI7B,MAAME,EAAY,CACdC,WAAYnB,EAAgBiB,IAAI,cAChCG,WAAYpB,EAAgBiB,IAAI,cAChCI,aAAcrB,EAAgBiB,IAAI,gBAClCK,YAAatB,EAAgBiB,IAAI,eACjCM,SAAUvB,EAAgBiB,IAAI,aAIlCrD,OAAO4D,KAAKN,GAAWrB,SAAQ4B,IACJ,KAAnBP,EAAUO,IAAkC,OAAnBP,EAAUO,WAC9BP,EAAUO,EACnB,IAGJ,MAAMC,EAAc,IAAIzB,gBAAgBiB,GAAWS,WAE/CD,IACA,QAAU,SAAUA,EAAa,EAEzC,CAEQ,qBAAAtB,CAAsBJ,GACtBA,EAAgBiB,IAAI,kBACpB,QAAWW,SAASC,QAASrC,EAErC,CAEQ,YAAAe,GACJ,MAAMuB,GAAU,UACZxB,EAAS,CAAC,EAWd,OATAwB,EAAQjC,SAASkC,IACb,MAAMC,EAAYD,EAAWE,MAAM,KAC/BC,EAAWC,mBAAmBH,EAAU,IAEd,mBAAnBxE,KAAK0E,KACZ5B,EAAO4B,GAAYC,mBAAmBH,EAAUI,OAAS,EAAIJ,EAAU,GAAK,IAChF,IAGG1B,CACX,CAEA,KAAAM,CAAMyB,GACFtD,OAAOH,OAAOgC,MAAM0B,UAAUD,EAClC,CAEA,QAAAE,CAASF,GACL,IAAIG,EAAYH,EACpB,CAEA,IAAAI,GACI,IAAIC,CACR,EAGJ,MAAMF,EAGF,WAAAnF,CAAYgF,GACR7E,KAAK6E,KAAOM,SAASN,GACrB7E,KAAKoF,WACT,CAEQ,SAAAA,GACJhB,SAASC,KAAKgB,UAAUC,IAAI,wBAE5B,MAAMC,EAAQvF,KAAKwF,WACf1F,EAAYE,KAAK+B,eACjB0D,EAAOzF,KAAK0F,UAEhB,IAAK,IAAIC,EAAI,EAAGA,EAAI,GAAIA,IAAK,CACzB,MAAMC,EAAM5F,KAAK6F,YACjBJ,EAAKK,YAAYF,EACrB,CAEAL,EAAMO,YAAYhG,GAClBA,EAAUgG,YAAYL,GAEtBrB,SAASC,KAAKyB,YAAYP,EAC9B,CAEQ,QAAAC,GACJ,MAAMD,EAAQnB,SAAS2B,cAAc,OAIrC,OAHAR,EAAMF,UAAUC,IAAI,mBACpBC,EAAMtE,MAAM+E,OAAS,SAEdT,CACX,CAEQ,YAAAxD,GACJ,MAAMjC,EAAYsE,SAAS2B,cAAc,OAEzC,OADAjG,EAAUuF,UAAUC,IAAkB,IAAdtF,KAAK6E,KAAa,uBAAyB,kBAC5D/E,CACX,CAEQ,OAAA4F,GACJ,MAAMD,EAAOrB,SAAS2B,cAAc,OAGpC,OAFAN,EAAKJ,UAAUC,IAAI,YAEZG,CACX,CAEQ,SAAAI,GACJ,MAAMD,EAAMxB,SAAS2B,cAAc,OAEnC,OADAH,EAAIP,UAAUC,IAAI,cACXM,CACX,EAGJ,MAAMV,EAGF,WAAArF,GAcQ,KAAAoG,gBAAkB,KACtBjG,KAAKkG,gBAAgBlG,KAAKmG,SAC1B/B,SAASgC,oBAAoB,uBAAwBpG,KAAKiG,gBAAgB,EAf1EjG,KAAKqG,kBACAC,uBAAuBtG,KAAKiG,gBACrC,CAEQ,eAAAC,CAAgBC,GACpB/B,SAASmC,gBAAgBC,UAAYL,CACzC,CAEQ,eAAAE,GAEJ,OADArG,KAAKmG,QAAU/B,SAASmC,gBAAgBC,UACjCxG,IACX,CAOQ,sBAAAsG,CAAuBG,GAE3B,OADArC,SAASsC,iBAAiB,uBAAwBD,GAC3CzG,IACX,E,gDCzLW,MAAM2G,EAMjB,WAAA9G,GACIG,KAAK4G,UAAY,GACjB5G,KAAK6G,SAAW,EAChB7G,KAAKO,MACT,CAEA,IAAAA,GACI6D,SAASsC,iBAAiB,4BAA6B1G,KAAK8G,kBAAkBC,KAAK/G,OAAO,EAC9F,CAEA,iBAAA8G,GACI1C,SAASgC,oBAAoB,4BAA6BpG,KAAK8G,mBAC/D9G,KAAKgH,gBACLhH,KAAKiH,iBAAkB,CAC3B,CAEA,mBAAAC,CAAoBC,QACUC,IAAtBD,EAASN,WACTM,EAASN,SAAW7G,KAAKqH,iBACzBrH,KAAK4G,UAAUU,KAAKH,IAErBnH,KAAKiH,iBACJE,EAASH,eAEjB,CAEA,aAAAA,GACI,IAAK,IAAIrB,EAAI,EAAGA,EAAI3F,KAAK4G,UAAUhC,OAAQe,SACNyB,IAA7BpH,KAAK4G,UAAUjB,GAAG4B,QAClBvH,KAAK4G,UAAUjB,GAAGqB,eAG9B,CAEA,cAAAK,GACI,OAAOrH,KAAK6G,UAAY,CAC5B,CAEA,cAAAW,GACIxH,KAAK4G,UAAUvE,SAASoF,SACEL,IAAlBK,EAAOF,aAAqDH,IAA7BK,EAAOF,OAAOG,YAC7CD,EAAOF,OAAOG,YAClB,GAER,CAEA,qBAAAC,CAAsBC,GAClB5H,KAAK4G,UAAUiB,KAAIV,IACXA,EAASW,WAAaF,QAKKR,IAApBD,EAASI,QAC2B,GAApCJ,EAASI,OAAOQ,uBACeX,IAA/BD,EAASI,OAAOG,YANvBP,EAASI,OAAOG,YAOpB,GAER,E,oFC9DJ,MAAMM,EAAiB,mCAER,MAAMC,EAOjB,YAAOC,CAAMC,EAAmBH,GAC5BI,MAAMC,KAAKjE,SAASkE,iBAAiBH,IAAWI,QAAQC,IAAuBA,EAAKC,QAAQC,oBAAmBrG,SAASvB,IACpH,IAAImH,EAAiBnH,GACrBA,EAAQ2H,QAAQC,kBAAoB,MAAM,GAElD,CAEA,WAAA7I,CAAmBiB,EAA8Bf,EAAmC,CAAC,GAAlE,KAAAe,QAAAA,EAA8B,KAAAf,QAAAA,EAC7CC,KAAKD,SAAU,QAAWC,KAAKc,QAASV,OAAOC,OAAOL,KAAKM,oBAAqBN,KAAKD,UACrFC,KAAK2I,WAA0B3I,KAAKc,QAAQ8H,cAAc5I,KAAKD,QAAQ8I,oBACvE7I,KAAK8I,WAAa9I,KAAK+I,cAAc/I,KAAKc,QAASd,KAAKD,QAAQiJ,mBAChEhJ,KAAKiJ,WAA4Bb,MAAMC,KAAKrI,KAAKc,QAAQwH,iBAAiBtI,KAAKD,QAAQmJ,oBACvFlJ,KAAKmJ,gBAAkBnJ,KAAKoJ,mBAAmBpJ,KAAK8I,YACpD9I,KAAKD,QAAQsJ,OAAQ,UAErBrJ,KAAKO,MACT,CAEQ,IAAAA,GASJ,OARAP,KAAKsJ,wBAAwBtJ,KAAKiJ,YAC7BM,0BACAC,8BACAC,mBACAC,mBAED1J,KAAKc,QAAQ8H,cAAc,uCAAuC5I,KAAK2J,qBAEpE3J,IACX,CAEQ,kBAAA2J,GACJ,MAAMC,GAAY,SAAS,KACvB,MAAMC,EAAc7J,KAAKc,QAAQ8H,cAAc,wCAC3CiB,GACAC,uBAAsB,KAClB9J,KAAKc,QAAQG,MAAML,OAAS,GAAGiJ,EAAY9I,gBAAgB,GAEnE,GACD,IAEGgJ,EAAmB,IAAIC,kBAAkBC,IAC3CA,EAAU5H,SAAS6H,IACO,eAAlBA,EAASC,MAAoD,UAA3BD,EAASE,eAC3CR,GACJ,GACF,IAGAS,EAAiB,IAAIC,gBAAe,KACtCV,GAAW,IAWf,OARAxB,MAAMC,KAAKrI,KAAKc,QAAQyJ,UAAUlI,SAASmI,IACvCT,EAAiBU,QAAQD,EAAO,CAAEE,YAAY,IAC9CL,EAAeI,QAAQD,EAAM,IAGjCH,EAAeI,QAAQzK,KAAKc,SAC5B8I,IAEO5J,IACX,CAEQ,gBAAA0J,GAQJ,OAPoBtB,MAAMC,KAAKrI,KAAKc,QAAQwH,iBAAiBtI,KAAKD,QAAQ4K,gBAAgB9C,KAAK+C,GAASA,EAAKC,aAAa,cAAatC,QAAOtE,GAAc,MAAPA,IAClH6G,MAAK7G,GAAOjE,KAAKD,QAAQsJ,MAAM0B,eAAe9G,MAG7EjE,KAAKgL,YAAYhL,KAAK2I,WAAWsC,IAG9BjL,IACX,CAEQ,uBAAAuJ,GAGJ,OAFAvJ,KAAKmJ,gBAAgBnJ,KAAK2I,WAAWsC,IAAM,IAAI,UAAWjL,KAAK2I,WAAY,CAAE3H,gBAAiBhB,KAAK2I,WAAW5H,eAEvGf,IACX,CAEQ,uBAAAsJ,CAAwBL,GAE5B,OADAA,EAAW5G,SAAQuI,IAAQ,QAAoBA,KACxC5K,IACX,CAEQ,eAAAkL,CAAgB9H,GACpB,OAAOA,EAAMqF,QAAQwC,EACzB,CAEQ,iBAAAE,CAAkBC,GACtB,OAAOpL,KAAKqL,gBAAgBD,GAAMH,EACtC,CAEQ,eAAAI,CAAgBD,GACpB,OAAoBA,EAAKE,QAAQtL,KAAKD,QAAQ4K,cAClD,CAEQ,gBAAAY,CAAiBH,GACrB,OAAOpL,KAAKqL,gBAAgBD,GAAM3C,QAAQ+C,QAC9C,CAEQ,cAAAC,CAAeL,GACnB,OAAOhH,SAASsH,eAAe1L,KAAKuL,iBAAiBH,GACzD,CAEQ,aAAArC,CAAcjI,EAAS6K,GAC3B,OAAOvD,MAAMC,KAAKvH,EAAQwH,iBAAiBqD,GAC/C,CAEQ,kBAAAvC,CAAmBN,GACvB,OAAOA,EAAW8C,QAAO,CAACC,EAAWC,KACjC,MAAMb,EAAKjL,KAAKkL,gBAAgBY,GAC5BhL,EAAUsD,SAASsH,eAAeT,GAMtC,OAJKY,EAAUZ,IAAOnK,IAClB+K,EAAUZ,GAAM,IAAI,UAAWnK,EAAS,CAAEE,gBAAiB,KAGxD6K,CAAS,GACjB,CAAC,EACR,CAEQ,2BAAArC,GAKJ,OAJApB,MAAMC,KAAKrI,KAAKc,QAAQwH,iBAAiB,qCACpCjG,SAAS0J,GAAqBA,EAAIrF,iBAAiB,SAAS,IAAM1G,KAAKgM,wBAE5EhM,KAAK8I,WAAWzG,SAAQ4J,GAAKA,EAAEvF,iBAAiB,QAAS1G,KAAKkM,iBAAiBnF,KAAK/G,SAC7EA,IACX,CAEQ,gBAAAkM,CAAiBC,G,UACrB,MAAMC,EAASpM,KAAKqM,gBAA+BF,EAAMG,cACrDC,EAAevM,KAAKkL,gBAAgBkB,GAElCI,EAAiBpE,MAAMC,KAAK+D,EAAOK,cAAcnE,iBAAiB,GAAGtI,KAAKD,QAAQiJ,qBAAqBhJ,KAAKD,QAAQ2M,gBAAgBnE,QAAOzH,GAAWA,IAAYsL,IACpKO,EAAiE,QAApD,EAAAP,EAAOxD,cAAc,uCAA+B,eAAEgE,YACnEC,EAAuC,QAAhC,EAAAT,EAAOxD,cAAc,mBAAW,eAAEkE,WAAU,GACnDC,EAA4C,QAAlC,EAAA/M,KAAKqM,gBAAgBI,qBAAa,eAAE7D,cAAc,GAAG5I,KAAKD,QAAQgN,WAEhF/M,KAAKgN,sBAAsBR,GAC3BJ,EAAO/G,UAAU3D,OAAO1B,KAAKD,QAAQ2M,aACrC,MAAMO,EAAiBb,EAAO/G,UAAU6H,SAASlN,KAAKD,QAAQ2M,aAE9D,GAAGH,EACCvM,KAAKmN,cACLnN,KAAKgL,YAAYhL,KAAKmL,kBAAkBiB,IACxCpM,KAAKgL,YAAYuB,GAAc,GAC/BvM,KAAKoN,eAAeb,EAAcH,EAAO3D,QAAQxE,IAAKmI,EAAOQ,YAAaD,EAAYE,QAKtF,GAFA7M,KAAKD,QAAQsN,YAEVJ,EACCjN,KAAKsN,eAAeP,OACjB,CACH/M,KAAKuN,cAAcR,GAEnB,MAAMS,EAAcxN,KAAKyL,eAAezL,KAAKqM,iBACvCoB,EAAqBD,EAAcxN,KAAK0N,cAAcF,GAAe,KAC3ExN,KAAKqM,gBAAkBoB,CAC3B,CAER,CAEQ,cAAAH,CAAeP,GACnBA,EAAQ1H,UAAUC,IAAI,wBAC1B,CAEQ,aAAAiI,CAAcR,GAClBA,EAAQ1H,UAAUsI,OAAO,wBAC7B,CAEQ,qBAAAX,CAAsBR,GAC1BA,EAAenK,SAAQuL,IAAc,QAAyBA,EAAY5N,KAAKD,QAAQ2M,cAC3F,CAEQ,cAAAU,CAAeS,EAAiB5J,EAAc6J,EAAcC,EAAgBlB,G,QAChF,MAAME,EAA+C,QAArC,EAAA3I,SAASsH,eAAe,GAAGmC,YAAU,eAAEjF,cAAc,oCAC/DoF,EAAajB,aAAO,EAAPA,EAASnE,cAAc,+BACpCqF,EAAalB,aAAO,EAAPA,EAASnE,cAAc,mCACpCsF,EAAenB,aAAO,EAAPA,EAASnE,cAAc,gCAE5CmE,EAAQoB,aAAa,WAAYlK,GAEjC+J,GAAcF,IAAME,EAAWpB,YAAckB,GAC7CI,GAAgBH,IAAQG,EAAatB,YAAcmB,GACnDC,GAAcE,GAAeF,EAAWlI,YAAYoI,GAEpD,MAAME,EAAiBrB,aAAO,EAAPA,EAASnE,cAAc,uCACL,QAAzC,EAAAwF,aAAc,EAAdA,EAAgBxF,cAAc,mBAAW,SAAE+E,SAC3Cd,GAAQuB,GAAiBA,EAAeC,QAAQxB,IAE/CoB,IAAclB,SAAAA,EAASsB,QAAQrO,KAAKsO,mBACzC,CAEQ,gBAAA7E,G,QACJ,MAAM8E,EAAcnG,MAAMC,KAAKrI,KAAKc,QAAQwH,iBAAiBtI,KAAKD,QAAQ4K,gBAC1E,IAAI6D,GAAc,EAClB,MAAMC,EAAmB,GAEzB,IAAK,IAAI9I,EAAI4I,EAAY3J,OAAS,EAAGe,GAAI,EAAGA,IAAK,CAC7C,IAAI+I,EAAUH,EAAY5I,GAAGkF,aAAa,YACtCuB,EAASmC,EAAY5I,GAAGiD,cAAc,GAAG5I,KAAKD,QAAQiJ,+BAA+BhJ,KAAKD,QAAQsJ,MAAMqF,QAExG1O,KAAKD,QAAQsJ,MAAM0B,eAAe2D,KAClCtC,EAAO/G,UAAUC,IAAItF,KAAKD,QAAQ2M,aAClC+B,EAAiBnH,KAAK8E,GAE9B,CAEA,IAAK,IAAIzG,EAAI4I,EAAY3J,OAAS,EAAGe,GAAI,EAAGA,IAAK,CAC7C,IAAI+I,EAAUH,EAAY5I,GAAGkF,aAAa,YACtCuB,EAASmC,EAAY5I,GAAGiD,cAAc,GAAG5I,KAAKD,QAAQiJ,+BAA+BhJ,KAAKD,QAAQsJ,MAAMqF,QAE5G,GAAI1O,KAAKD,QAAQsJ,MAAM0B,eAAe2D,GAAU,CAC5C,MAAMC,EAAiB3O,KAAKmL,kBAAkBiB,GACxCG,EAAevM,KAAKkL,gBAAgBkB,GACpCO,EAAiE,QAApD,EAAAP,EAAOxD,cAAc,uCAA+B,eAAEgE,YACnEC,EAAuC,QAAhC,EAAAT,EAAOxD,cAAc,mBAAW,eAAEkE,WAAU,GAEzD,IAAK0B,EAAa,CACd,GAAGjC,EACCvM,KAAKgL,YAAYuB,GAAc,GAC/BvM,KAAKoN,eAAeb,EAAcH,EAAO3D,QAAQxE,IAAKmI,EAAOQ,YAAaD,EAAYE,OAEnF,CACHT,EAAO/G,UAAUsI,OAAO3N,KAAKD,QAAQ2M,aACrC,MAAMe,EAAqBgB,EAAiBG,MAAKxD,GAAQA,EAAK/F,UAAU6H,SAASlN,KAAKD,QAAQ2M,eAE9F1M,KAAKgL,YAAY2D,GAAgB,GACjClB,GAAsBzN,KAAKoN,eAAeuB,EAAgBlB,EAAmBhF,QAAQxE,IAAKwJ,EAAmB7E,cAAc,+BAA+BgE,YAAaD,EAAYE,EACvL,CAEA7M,KAAKqM,gBAAkBD,EACvBoC,GAAeA,CACnB,CACJ,CACJ,CAQA,OANAK,YAAW,KACPJ,EAAiBlG,QAAO6C,IACiC,GAArDA,EAAK/F,UAAU6H,SAASlN,KAAKD,QAAQ2M,cAAyBtB,EAAK0D,OAAO,GAC5E,GACH,KAEI9O,IACX,CAEQ,WAAAgL,CAAYC,EAAYhL,GAC5B,MAAM8O,EAAkB/O,KAAKmJ,gBAAgB8B,GACzC+D,EAAYD,GAAmBA,EAAgBhN,eAOnD,OALIiN,IACAD,EAAgBrN,SAChBsN,EAAU3J,UAAU3D,OAAO,wCAGxB1B,IACX,CAGA,oBAAAiP,CAAqBzG,G,MACjB,OAAOA,IAAyE,QAAjE,EAAAJ,MAAMC,KAAKG,EAAKF,iBAAiBtI,KAAKD,QAAQiJ,2BAAmB,eAAE8B,MAAKgB,IAAqC,IAAhBA,EAAKoD,SACrH,CAEO,iBAAAlD,G,QACH,IAAIhM,KAAKqM,gBAAiB,OAE1B,MAAMmB,EAAcxN,KAAKyL,eAAezL,KAAKqM,iBACzCoB,EAAqBD,EAAcxN,KAAK0N,cAAcF,GAAe,KACrEjB,EAAevM,KAAKkL,gBAAgBlL,KAAKqM,iBACzC8C,GAAmB5C,EAEjBoC,EAAiB3O,KAAKmL,kBAAkBnL,KAAKqM,iBAC7C+C,EAAyB3B,aAAkB,EAAlBA,EAAoB7E,cAAc,+BAA+BgE,YAC1FC,EAAoD,QAA7C,EAAAY,aAAkB,EAAlBA,EAAoB7E,cAAc,mBAAW,eAAEkE,WAAU,GAgBtE,OAdA9M,KAAKqP,wBACLrP,KAAKsP,WAAWtP,KAAKqL,gBAAgBrL,KAAKqM,kBAC1CrM,KAAKuN,cAAgD,QAAlC,EAAAvN,KAAKqM,gBAAgBI,qBAAa,eAAE7D,cAAc,GAAG5I,KAAKD,QAAQgN,YAEhFoC,IACDnP,KAAKgL,YAAY2D,GACjB3O,KAAKgL,YAAYuB,GACjBvM,KAAK2I,WAAWsC,IAAM0D,GAAiB3O,KAAKoN,eAAeuB,EAAiBlB,aAAkB,EAAlBA,EAAoBhF,QAAQxE,IAAKmL,EAAwB,KAAMvC,IAG/I7M,KAAKmN,cAELnN,KAAKqM,gBAAkBoB,EAEhBzN,IACX,CAEQ,UAAAsP,CAAWlM,G,MAGf,OAFyB,QAAzB,EAAApD,KAAK0N,cAActK,UAAM,SAAEiC,UAAUsI,OAAO3N,KAAKD,QAAQ2M,aAElD1M,IACX,CAEQ,qBAAAqP,GACJ,MAAME,EAAkBvP,KAAKqM,gBAAgB5D,QAAQxE,IACjDuL,EAAgD,OAARpL,eAAQ,IAARA,cAAQ,EAARA,SAAUwE,cAAc,6CAA6C2G,OAEjHC,IAAmB,QAAgBA,EAAgBC,cAAc,EACrE,CAEQ,aAAA/B,CAActK,GAClB,OAAoBA,EAAMwF,cAAc,GAAG5I,KAAKD,QAAQiJ,qBAAqBhJ,KAAKD,QAAQ2M,cAC9F,CAEQ,WAAAS,GAEJ,OADAnN,KAAKD,QAAQ2P,WACN1P,IACX,CAGQ,eAAAsO,GACJ,OAAO,QAAwB,4sCAOnC,CAEQ,iBAAAhO,GACJ,MAAO,CACHqK,cAAe,+BACf9B,mBAAoB,sCACpBK,kBAAmB,8BACnBF,kBAAmB,8BACnB2G,kBAAmB,mCACnBjD,YAAa,YACbK,QAAQ,mCAEhB,EAkBA9E,EAAiBC,MAAMF,E,qFClW3B,MAAM4H,EAAiB,CAAC,eAAgB,wBASzB,MAAMC,UAAqB,UAGtC,WAAAhQ,CAAYiB,EAAsBf,EAAyC,CAAC,GACxE+P,MAAMhP,EAASf,GAEfC,KAAKD,SAAU,QAAWC,KAAKc,QAASd,KAAKD,SAE7CC,KAAKO,MACT,CAEU,iBAAAD,GACN,MAAMyP,EAAaD,MAAMxP,oBAEzB,OAAO,OAAP,wBACOyP,GAAU,CACbC,qBAAsB,GAAGD,EAAWE,uBACpCC,2BAA4B,GAAGH,EAAWE,kCAC1CE,oBAAqB,GAAGJ,EAAWI,0CACnCC,WAAYC,gBAAoB9O,OAAOH,OAAOkP,aAAa,EAC3DC,UAAWF,YACXG,YAAaH,YACbI,WAAYJ,aAEpB,CAEA,UAAcK,GACV,OAAOtM,SAASC,KAAK6I,SAASlN,KAAKoD,MACvC,CAEA,WAAAuN,GAMI,OALA,QAAW3Q,KAAKoD,MAAMwF,cAAc,yBAA0BgH,GAEzD5P,KAAK0Q,QAAQ,KAAUE,SAAQ,GACpCd,MAAMe,OAEC7Q,IACX,CAGA,UAAM6Q,CAAKC,EAAqB,QAC5B,MAAM,eACFb,EAAc,WACdG,EAAU,UACVG,GACAvQ,KAAKD,cAEHqQ,IAENpQ,KAAK+Q,aAEA/Q,KAAK0Q,QAAQ,KAAUE,SAAQ,IAEpC,QAAc5Q,KAAKoD,MAAMwF,cAAc,yBAA0BgH,GAEjEE,MAAMe,QAEN,SAA0B,IAAM7Q,KAAKoD,MAAMiC,UAAUC,IAAI,GAAG2K,aAE5D1O,OAAOH,OAAO4P,uBAERT,IAENO,GACJ,CAEA,WAAMG,CAAMH,EAAqB,QAC7B,MAAM,eACFb,EAAc,YACdO,EAAW,WACXC,GACAzQ,KAAKD,cAEHyQ,IAENlN,eAAeC,WAAW,WAE1B,QAASvD,KAAKoD,MAAO,GAAG6M,eAExB,SAA2B,MACvB,QAAcjQ,KAAKoD,MAAO,GAAG6M,UAAwB,GAAGA,cACxDH,MAAMmB,OAAO,GACd,MAEC7M,SAASC,KAAKgB,UAAU6H,SAAS,qBAAuB9I,SAASC,KAAKgB,UAAU6H,SAAS,yBACzF,KAAUgE,cAERT,IAENK,GACJ,CAEA,UAAAC,GACI,IAAII,EACAC,EACAC,EAAY/N,eAAegO,QAAQ,UAEvC,GAAID,EAGA,GAFAF,EAAcI,KAAKC,MAAMH,GAErBF,EAAYhR,SAASuC,SAASQ,MAAO,CACrC,IAAIuO,EAAQN,EAAYO,WAAU/L,GAAKA,GAAKjD,SAASQ,OAAQ,EAC7DiO,EAAcA,EAAYQ,MAAM,EAAGF,GACnCL,EAAS,IAAID,EACjB,MACIC,EAAS,IAAID,EAAazO,SAASQ,WAGvCkO,EAAS,CAAC1O,SAASQ,MAGvBI,eAAesO,QAAQ,SAAU,GAAGL,KAAKM,UAAUT,MAE/CA,EAAOxM,OAAS,EAChB5E,KAAKoD,MAAMiC,UAAUC,IAAI,2BAEzBtF,KAAKoD,MAAMiC,UAAUsI,OAAO,0BAEpC,E,iKClIJ,IAAImE,EAAmC,WACnC,SAASA,EAAkBC,EAAWC,GAClChS,KAAK+R,UAAYA,EACjB/R,KAAKgS,UAAYA,CACrB,CAIA,OAHAF,EAAkBG,UAAUC,KAAO,SAAUC,EAAYC,GACrD,OAAOA,EAAOC,UAAU,IAAIC,EAAoBH,EAAYnS,KAAK+R,UAAW/R,KAAKgS,WACrF,EACOF,CACX,CATsC,GAUlCQ,EAAqC,SAAUC,GAE/C,SAASD,EAAoBE,EAAaT,EAAWC,GACjD,IAAIS,EAAQF,EAAOL,KAAKlS,KAAMwS,IAAgBxS,KAI9C,OAHAyS,EAAMV,UAAYA,EAClBU,EAAMT,UAAYA,EAClBS,EAAMhB,MAAQ,EACPgB,CACX,CAyBA,OAhCA,KAAkBH,EAAqBC,GAQvCD,EAAoBL,UAAUS,MAAQ,SAAUjR,GAC5C,IACIkR,EADAH,EAAcxS,KAAKwS,YAEvB,IACIG,EAAS3S,KAAK+R,UAAUtQ,EAAOzB,KAAKyR,QACxC,CACA,MAAOmB,GAEH,YADAJ,EAAYK,MAAMD,EAEtB,CACA5S,KAAK8S,eAAerR,EAAOkR,EAC/B,EACAL,EAAoBL,UAAUa,eAAiB,SAAUrR,EAAOsR,GAC5D,IAAIP,EAAcxS,KAAKwS,YACnBQ,QAAQD,GACRP,EAAYS,KAAKxR,IAGbzB,KAAKgS,WACLQ,EAAYS,KAAKxR,GAErB+Q,EAAYU,WAEpB,EACOZ,CACX,CAlCwC,CAkCtCa,EAAA,G,iCCpCF,MAAMnL,EAAiB,4BAER,MAAMoL,UAAkBvD,EAAA,QACnC,YAAO3H,CAAMC,EAAmBH,GAC5BI,MAAMC,KAAKjE,SAASkE,iBAAiBH,IAAWI,QAAQC,IAAuBA,EAAKC,QAAQC,oBAAmBrG,SAASvB,IACpH,IAAIsS,EAAUtS,GACdA,EAAQ2H,QAAQC,kBAAoB,MAAM,GAElD,CAEA,WAAA7I,CAAYiB,EAAsBf,EAAyC,CAAC,GACxE+P,MAAMhP,EAASf,GAEfC,KAAKqT,gBACT,CAEU,iBAAA/S,GACN,MAAMyP,EAAaD,MAAMxP,oBAEzB,OAAO,OAAP,wBACOyP,GAAU,CACbC,qBAAsB,GAAGD,EAAWE,uBACpCC,2BAA4B,GAAGH,EAAWE,kCAC1CE,oBAAqB,GAAGJ,EAAWI,0CACnCC,WAAYC,gBAAoBjP,OAAOkP,aAAa,EACpDC,UAAWF,YAEXG,YAAaH,YACbI,WAAYJ,aAEpB,CAEQ,cAAAgD,GACJ,MAAMC,GAAc,EAAAC,EAAA,GAAUvT,KAAKwT,aAAc,aAAc,CAAEC,SAAS,IAAQC,MAAK,EAAAnL,EAAA,IAAQoL,GAAkBA,EAAEvH,SAAWuH,EAAErH,iBAC5HsH,GAAY,EAAAL,EAAA,GAAUnP,SAAU,WAAY,CAAEqP,SAAS,IAAQC,MAAK,EAAAG,EAAA,IAAI,IAAM/J,uBAAsB,IAAM9J,KAAK8T,QAAQC,gBAAgB,cACvIC,GAAa,EAAAT,EAAA,GAAUnP,SAAU,YAAa,CAAEqP,SAAS,IAAQC,MAAK,EAAA7L,EAAA,IAAK8L,GAAkBA,EAAEM,eAAe,GAAGC,YACjH,eAAEjE,GAAmBjQ,KAAKD,QAiC9B,OA/BmBuT,EAAYI,MAC3B,EAAA7L,EAAA,IAAK8L,GAAkBA,EAAEM,eAAe,GAAGC,WAC3C,EAAAC,EAAA,IAAUC,IAAU,SAAAC,EAAA,KAAc,EAAAC,EAAAA,IAAGF,GAASJ,GACzCN,MACG,EAAAa,EAAA,GAAUX,ID1DJ7B,EC2DI,MAAO,QAAS/R,KAAKoD,MAAO,GAAG6M,mBD1DvC,IAAd+B,IACAA,GAAY,GAET,SAAUI,GACb,OAAOA,EAAOoC,KAAK,IAAI1C,EAAkBC,EAAWC,GACxD,IANG,IAAmBD,EAAWC,CC2DoD,KAGtEK,WAAU,EAAE+B,EAAQK,MAC3B,MAEIC,EAAaD,EAAQL,EACrBO,EAAgBD,GAFU,GADTtQ,SAASmC,gBAAgBxF,cAKxC6T,EAAS,CACXC,UAAW,cAAcC,KAAKC,IAAIL,EAAY,eAAeI,KAAKE,IAAI,EAAK,GAAML,EAAgB,MACjGM,WAAY,OACZC,SAAU,SACVC,QAASL,KAAKE,IAAI,EAAK,GAAML,EAAgB,IAG7CA,EAAgB,EAChB3U,KAAK8T,QAAQ3F,aAAa,SAAS,QAAoByG,KAEvD5U,KAAKiR,SACL,SAA2B,KACvBjR,KAAK8T,QAAQC,gBAAgB,QAAQ,GACtC,KACP,IAGG/T,IACX,CAEA,YAAAoV,GACI,OAAOpV,KAAKoD,KAChB,EAgBAgQ,EAAUlL,MAAMF,E","sources":["webpack:///./modules/Expandable.ts","webpack:///./URLChecker.ts","webpack:///./YouTubeManager.ts","webpack:///./modules/FilterNavigation.ts","webpack:///./modules/LayerAdvance.ts","webpack:///../../../node_modules/rxjs/_esm5/internal/operators/takeWhile.js","webpack:///./modules/LayerPage.ts"],"sourcesContent":["import { getOptions, requestAnimationFrameTimer } from '../helpers/helperFunctions';\r\n\r\nexport default class Expandable {\r\n    private height: number;\r\n    private active: boolean;\r\n\r\n    constructor(private container: HTMLElement, private options: ExpandableOptions = {}) {\r\n        this.active = this.container.className.includes('active');\r\n        this.options = getOptions(this.container, Object.assign(this.getDefaultOptions(), this.options));\r\n        this.init();\r\n    }\r\n\r\n    private init(): Expandable {\r\n        this.setElementHeight(this.container, this.getSuitableHeight());\r\n        this.setOnResizeHandler();\r\n        return this;\r\n    }\r\n\r\n    private saveInitialHeight(): Expandable {\r\n        this.height = this.getElementHeight(this.container);\r\n        return this;\r\n    }\r\n\r\n    private getElementHeight(element: HTMLElement): number {\r\n        return element.offsetHeight;\r\n    }\r\n\r\n    private getSuitableHeight(): string {\r\n        return this.active ? '' : this.options.collapsedHeight + 'px';\r\n    }\r\n\r\n    private setElementHeight(element: HTMLElement, height?: string): Expandable {\r\n        element.style.maxHeight = height != null ? height : ''; \r\n\r\n        return this;\r\n    }\r\n\r\n    private toggleState(): Expandable {\r\n        this.active = !this.active;\r\n        return this;\r\n    }\r\n\r\n    private getDefaultOptions(): ExpandableOptions {\r\n        return {\r\n            collapsedHeight: 115\r\n        };\r\n    }\r\n\r\n    private setOnResizeHandler(): Expandable {\r\n        NiveaX.addToEventStore('resize', () => requestAnimationFrameTimer(() => this.onResize(), 300), window)\r\n\r\n        return this;\r\n    }\r\n\r\n    private onResize() {\r\n        const height = this.getSuitableHeight();\r\n        this.setElementHeight(this.container, height);\r\n    }\r\n\r\n    setCollapsedHeight(value: number): Expandable {\r\n        this.options.collapsedHeight = value;\r\n        return this;\r\n    }\r\n\r\n    toggle(): Expandable {\r\n        this.toggleState()\r\n            .setElementHeight(this.container, this.getSuitableHeight());\r\n        return this;\r\n    }\r\n\r\n    isActive(): boolean {\r\n        return this.active;\r\n    }\r\n    \r\n    needToBeShown(): boolean {\r\n        return this.height > this.options.collapsedHeight * 1.25;\r\n    }\r\n\r\n\r\n    clear(): Expandable {\r\n        this.setElementHeight(this.container)\r\n            .saveInitialHeight();\r\n        return this;\r\n    }\r\n\r\n    render(): Expandable {\r\n        const height =  this.getSuitableHeight();\r\n        this.setElementHeight(this.container, height);\r\n\r\n        return this;\r\n    }\r\n\r\n    getContainer(): HTMLElement {\r\n        return this.container;\r\n    }\r\n}","/// <reference path=\"typings/niveax.d.ts\"/>\r\n\r\nimport { addClasses } from './helpers/DOMHelpers';\r\nimport { getURLParamsArray } from './helpers/helperFunctions';\r\nimport { setCookie } from './helpers/helperFunctions';\r\n \r\ninterface URLCheckerHandler {\r\n    [index: string]: (value: string) => any;\r\n}\r\n\r\nconst opaqueSpinnerClasses = ['nx-u-spinner', 'nx-u-spinner--medium', 'nx-u-spinner--opaque'];\r\n\r\nexport default class URLChecker {\r\n    constructor(handlers: URLCheckerHandler = {}) {\r\n        this.addHandlers(handlers)\r\n            .init();\r\n    }\r\n\r\n    private addHandlers(handlers: URLCheckerHandler): URLChecker {\r\n        Object.entries(handlers).forEach(([name, handler]) => this[name] = handler);\r\n        return this;\r\n    }\r\n\r\n    private init(): URLChecker {\r\n        const urlSearchParams = new URLSearchParams(window.location.search);\r\n        this.hidePageOnFastForward(urlSearchParams);\r\n        this.createSourceCookieIfNeeded(urlSearchParams);\r\n        \r\n        const params = this.getURLParams();\r\n        \r\n        Object.entries(params).forEach(([handlerName, arg]) => {\r\n            this[handlerName](arg);\r\n        });\r\n\r\n        if (location.hash.match(/layer/g)) {\r\n            NiveaX.layer.serviceLayer();\r\n        } else {\r\n            sessionStorage.removeItem('layers');\r\n        }\r\n\r\n        return this;\r\n    }\r\n\r\n    private createSourceCookieIfNeeded(urlSearchParams: URLSearchParams) {\r\n        const src = urlSearchParams.get('src');\r\n\r\n        if (src) {\r\n            setCookie(\"Source\", src, 0);\r\n            return;\r\n        }\r\n        \r\n        const utmParams = { \r\n            utm_source: urlSearchParams.get('utm_source'), \r\n            utm_medium: urlSearchParams.get('utm_medium'), \r\n            utm_campaign: urlSearchParams.get('utm_campaign'), \r\n            utm_content: urlSearchParams.get('utm_content'), \r\n            utm_term: urlSearchParams.get('utm_term') \r\n        }\r\n        \r\n\r\n        Object.keys(utmParams).forEach(key => {\r\n            if (utmParams[key] === '' || utmParams[key] === null) {\r\n              delete utmParams[key];\r\n            }\r\n        });\r\n\r\n        const queryString = new URLSearchParams(utmParams).toString();\r\n \r\n        if (queryString) {\r\n            setCookie(\"Source\", queryString, 0);\r\n        }\r\n    }\r\n\r\n    private hidePageOnFastForward(urlSearchParams: URLSearchParams) {\r\n        if (urlSearchParams.get('fast-forward')) {\r\n            addClasses(document.body, ...opaqueSpinnerClasses);\r\n        }\r\n    }\r\n\r\n    private getURLParams(): URLParams {\r\n        const queries = getURLParamsArray(),\r\n            params = {};\r\n\r\n        queries.forEach((indexQuery: string) => {\r\n            const indexPair = indexQuery.split('='),\r\n                queryKey = decodeURIComponent(indexPair[0]);\r\n\r\n            if (typeof this[queryKey] === 'function') {\r\n                params[queryKey] = decodeURIComponent(indexPair.length > 1 ? indexPair[1] : \"\");\r\n            }\r\n        });\r\n\r\n        return params;\r\n    }\r\n\r\n    layer(mode) {\r\n        window.NiveaX.layer.openAsync(mode);\r\n    }\r\n\r\n    showgrid(mode): void {\r\n        new GridBuilder(mode);\r\n    }\r\n\r\n    nojs(): void {\r\n        new JSLoader();\r\n    }\r\n}\r\n\r\nclass GridBuilder {\r\n    private mode: Number;\r\n\r\n    constructor(mode: string) {\r\n        this.mode = parseInt(mode);\r\n        this.buildGrid();\r\n    }\r\n\r\n    private buildGrid() {\r\n        document.body.classList.add('nx-u-debug-show-grid');\r\n\r\n        const debug = this.getDebug(),\r\n            container = this.getContainer(),\r\n            grid = this.getGrid();\r\n\r\n        for (let i = 0; i < 12; i++) {\r\n            const col = this.getColumn();\r\n            grid.appendChild(col);\r\n        }\r\n\r\n        debug.appendChild(container);\r\n        container.appendChild(grid);\r\n\r\n        document.body.appendChild(debug);\r\n    }\r\n\r\n    private getDebug() {\r\n        const debug = document.createElement('div');\r\n        debug.classList.add('nx-u-debug-grid');\r\n        debug.style.zIndex = '888888';\r\n\r\n        return debug;\r\n    }\r\n\r\n    private getContainer() {\r\n        const container = document.createElement('div');\r\n        container.classList.add(this.mode === 2 ? 'nx-u-container-fluid' : 'nx-u-container');\r\n        return container;\r\n    }\r\n\r\n    private getGrid() {\r\n        const grid = document.createElement('div');\r\n        grid.classList.add('nx-u-row');\r\n\r\n        return grid;\r\n    }\r\n\r\n    private getColumn() {\r\n        const col = document.createElement('div');\r\n        col.classList.add('nx-u-col-1');\r\n        return col;\r\n    }\r\n}\r\n\r\nclass JSLoader {\r\n    private content: string;\r\n\r\n    constructor() {\r\n        this.saveHTMLInnerTo()\r\n            .runAfterAppInitialized(this.onModulesLoaded);\r\n    }\r\n\r\n    private writeToHTMLNode(content: string): void {\r\n        document.documentElement.innerHTML = content;\r\n    }\r\n\r\n    private saveHTMLInnerTo(): JSLoader {\r\n        this.content = document.documentElement.innerHTML;\r\n        return this;\r\n    }\r\n\r\n    private onModulesLoaded = () => {\r\n        this.writeToHTMLNode(this.content);\r\n        document.removeEventListener('niveax:modulesloaded', this.onModulesLoaded)\r\n    }\r\n\r\n    private runAfterAppInitialized(func: Callback): JSLoader {\r\n        document.addEventListener('niveax:modulesloaded', func);\r\n        return this;\r\n    }\r\n}","/// <reference path=\"typings/niveax.d.ts\"/>\r\n\r\nexport default class YouTubeManager {\r\n\r\n    ytModules: any;\r\n    playerId: number;\r\n    iFrameApiLoaded: boolean;\r\n\r\n    constructor() {\r\n        this.ytModules = [];\r\n        this.playerId = 0;\r\n        this.init();\r\n    }\r\n\r\n    init() {\r\n        document.addEventListener('nxOnYouTubeIframeAPIReady', this.onIFrameApiLoaded.bind(this), false);\r\n    }\r\n\r\n    onIFrameApiLoaded() {\r\n        document.removeEventListener('nxOnYouTubeIframeAPIReady', this.onIFrameApiLoaded);\r\n        this.removeBlocker();\r\n        this.iFrameApiLoaded = true;\r\n    }\r\n\r\n    registerIFrameVideo(ytModule) {\r\n        if (ytModule.playerId === undefined) {\r\n            ytModule.playerId = this.getNewPlayerId();\r\n            this.ytModules.push(ytModule);\r\n        }\r\n        if(this.iFrameApiLoaded) {\r\n            ytModule.removeBlocker();\r\n        }\r\n    }\r\n\r\n    removeBlocker() {\r\n        for (let i = 0; i < this.ytModules.length; i++) {\r\n            if (this.ytModules[i].player === undefined) {\r\n                this.ytModules[i].removeBlocker();\r\n            }\r\n        }\r\n    }\r\n\r\n    getNewPlayerId() {\r\n        return this.playerId += 1;\r\n    }\r\n\r\n    pauseAllVideos() {\r\n        this.ytModules.forEach((module) => {\r\n            if (module.player !== undefined && module.player.pauseVideo !== undefined) {\r\n                module.player.pauseVideo();\r\n            }\r\n        });\r\n    }\r\n\r\n    pauseYouTubeVideoById(youTubeVideoId: string) {\r\n        this.ytModules.map(ytModule => {\r\n            if (ytModule.youTubeId == youTubeVideoId && moduleCanBePaused()) {\r\n                ytModule.player.pauseVideo();\r\n            }\r\n\r\n            function moduleCanBePaused() {\r\n                return ytModule.player !== undefined\r\n                    && ytModule.player.getPlayerState() == 1\r\n                    && ytModule.player.pauseVideo !== undefined;\r\n            }\r\n        });\r\n    }\r\n}\r\n","import Expandable from './Expandable';\r\nimport { debounce, getOptions, horizontalScrolling, loadParamsFromURL, toggleSelection } from '../helpers/helperFunctions';\r\nimport { createElementFromString, removeClass } from '../helpers/DOMHelpers';\r\n\r\nconst moduleSelector = '[data-module=\"FilterNavigation\"]';\r\n\r\nexport default class FilterNavigation {\r\n    private primeLevel: HTMLElement;\r\n    private layerItems: HTMLElement[];\r\n    private layerLists: HTMLElement[];\r\n    private layersStructure: FilterNavLayersStructure;\r\n    private _lastActiveItem: HTMLElement;\r\n\r\n    static setup(selector: string = moduleSelector): void {\r\n        Array.from(document.querySelectorAll(selector)).filter((node: HTMLElement) => !node.dataset.moduleInitialized).forEach((element: HTMLElement) => {\r\n            new FilterNavigation(element);\r\n            element.dataset.moduleInitialized = 'true';\r\n        });\r\n    }\r\n\r\n    constructor(public element: HTMLElement, private options: FilterNavigationOptions = {}) {\r\n        this.options = getOptions(this.element, Object.assign(this.getDefaultOptions(), this.options));\r\n        this.primeLevel = <HTMLElement>this.element.querySelector(this.options.primeLayerSelector);\r\n        this.layerItems = this.getLayerItems(this.element, this.options.layerItemSelector);\r\n        this.layerLists = <HTMLElement[]>Array.from(this.element.querySelectorAll(this.options.layerListSelector));\r\n        this.layersStructure = this.getLayersStructure(this.layerItems);\r\n        this.options.state = loadParamsFromURL();\r\n\r\n        this.init();\r\n    }\r\n\r\n    private init(): FilterNavigation {\r\n        this.initHorizontalScrolling(this.layerLists)\r\n            .initExpanderFirtAndLast()\r\n            .addHandlerOnLayerItemsClick()\r\n            .recoverFilterNav()\r\n            .togglePrimeLayer();\r\n\r\n        if (this.element.querySelector('.nx-filter-navigation--display-all')) this.initHeightObserver();\r\n\r\n        return this;\r\n    }\r\n\r\n    private initHeightObserver() {\r\n        const setHeight = debounce(() => {\r\n            const activeChild = this.element.querySelector('.nx-filter-navigation__level--active') as HTMLElement;\r\n            if (activeChild) {\r\n                requestAnimationFrame(() => {\r\n                    this.element.style.height = `${activeChild.offsetHeight}px`;\r\n                });\r\n            }\r\n        }, 50);\r\n\r\n        const mutationObserver = new MutationObserver((mutations) => {\r\n            mutations.forEach((mutation) => {\r\n                if (mutation.type === 'attributes' && mutation.attributeName === 'class') {\r\n                    setHeight();\r\n                }\r\n            });\r\n        });\r\n\r\n        const resizeObserver = new ResizeObserver(() => {\r\n            setHeight();\r\n        });\r\n\r\n        Array.from(this.element.children).forEach((child) => {\r\n            mutationObserver.observe(child, { attributes: true });\r\n            resizeObserver.observe(child);\r\n        });\r\n\r\n        resizeObserver.observe(this.element);\r\n        setHeight();\r\n\r\n        return this;\r\n    }\r\n\r\n    private togglePrimeLayer() {\r\n        const keysFromDom = Array.from(this.element.querySelectorAll(this.options.layerSelector)).map((list) => list.getAttribute('data-key')).filter(key => key != null),\r\n            filterTagsActive = keysFromDom.some(key => this.options.state.hasOwnProperty(key));\r\n\r\n        if (!filterTagsActive) {\r\n            this.toggleLayer(this.primeLevel.id)\r\n        }\r\n\r\n        return this;\r\n    }\r\n\r\n    private initExpanderFirtAndLast(): FilterNavigation {\r\n        this.layersStructure[this.primeLevel.id] = new Expandable(this.primeLevel, { collapsedHeight: this.primeLevel.offsetHeight })\r\n\r\n        return this\r\n    }\r\n\r\n    private initHorizontalScrolling(layerLists: HTMLElement[]): FilterNavigation {\r\n        layerLists.forEach(list => horizontalScrolling(list));\r\n        return this;\r\n    }\r\n\r\n    private getChildLayerID(layer: HTMLElement): string {\r\n        return layer.dataset.id;\r\n    }\r\n\r\n    private getCurrentLayerID(item: HTMLElement): string {\r\n        return this.getCurrentLayer(item).id;\r\n    }\r\n\r\n    private getCurrentLayer(item: HTMLElement): HTMLElement {\r\n        return <HTMLElement>item.closest(this.options.layerSelector);\r\n    }\r\n\r\n    private getParentLayerID(item: HTMLElement): string {\r\n        return this.getCurrentLayer(item).dataset.parentId;\r\n    }\r\n\r\n    private getParentLayer(item: HTMLElement): HTMLElement {\r\n        return document.getElementById(this.getParentLayerID(item));\r\n    }\r\n\r\n    private getLayerItems(element, itemSelector): HTMLElement[] {\r\n        return Array.from(element.querySelectorAll(itemSelector));\r\n    }\r\n\r\n    private getLayersStructure(layerItems: HTMLElement[]): FilterNavLayersStructure {\r\n        return layerItems.reduce((structure, itm) => {\r\n            const id = this.getChildLayerID(itm),\r\n                element = document.getElementById(id);\r\n\r\n            if (!structure[id] && element) { // && element !== this.primeLevel\r\n                structure[id] = new Expandable(element, { collapsedHeight: 0 })\r\n            }\r\n\r\n            return structure;\r\n        }, {})\r\n    }\r\n\r\n    private addHandlerOnLayerItemsClick(): FilterNavigation {\r\n        Array.from(this.element.querySelectorAll('.nx-filter-navigation__item--all'))\r\n            .forEach((btn: HTMLElement) => btn.addEventListener('click', () => this.goToPreviousLevel()));\r\n\r\n        this.layerItems.forEach(l => l.addEventListener('click', this.onLayerItemClick.bind(this)));\r\n        return this;\r\n    }\r\n\r\n    private onLayerItemClick(event: Event): void {\r\n        const target = this._lastActiveItem = <HTMLElement>event.currentTarget,\r\n            childLayerID = this.getChildLayerID(target);\r\n\r\n        const activeSiblings = Array.from(target.parentElement.querySelectorAll(`${this.options.layerItemSelector}.${this.options.activeClass}`)).filter(element => element !== target),\r\n            countValue = target.querySelector('.nx-filter-navigation__count')?.textContent,\r\n            icon = target.querySelector('svg, img')?.cloneNode(true) as HTMLElement,\r\n            backBtn = this._lastActiveItem.parentElement?.querySelector(`${this.options.backBtn}`) as HTMLElement;\r\n        \r\n        this.removePrevActiveSibls(activeSiblings)\r\n        target.classList.toggle(this.options.activeClass);\r\n        const isActiveFilter = target.classList.contains(this.options.activeClass);\r\n\r\n        if(childLayerID ) {\r\n            this.runUpdateCB();\r\n            this.toggleLayer(this.getCurrentLayerID(target));\r\n            this.toggleLayer(childLayerID, true);\r\n            this.showBackButton(childLayerID, target.dataset.key, target.textContent, countValue, icon);\r\n\r\n        } else {\r\n            this.options.updateCB1();\r\n\r\n            if(isActiveFilter) {\r\n                this.disableBackBtn(backBtn);\r\n            } else {\r\n                this.enableBackBtn(backBtn);\r\n\r\n                const parentLayer = this.getParentLayer(this._lastActiveItem);\r\n                const previousActiveItem = parentLayer ? this.getActiveItem(parentLayer) : null;        \r\n                this._lastActiveItem = previousActiveItem;\r\n            } \r\n        }\r\n    }\r\n\r\n    private disableBackBtn(backBtn: HTMLElement) {\r\n        backBtn.classList.add(\"nx-back-btn--disabled\")\r\n    }\r\n\r\n    private enableBackBtn(backBtn:HTMLElement){\r\n        backBtn.classList.remove(\"nx-back-btn--disabled\")  \r\n    }\r\n\r\n    private removePrevActiveSibls(activeSiblings): void {\r\n        activeSiblings.forEach(activeItem => removeClass(<HTMLElement>activeItem, this.options.activeClass))\r\n    }\r\n\r\n    private showBackButton(layerId: string, key?: string, txt?: string, count?: string, icon?: HTMLElement) {\r\n        const backBtn = document.getElementById(`${layerId}`)?.querySelector('.nx-filter-navigation__item--all');\r\n        const backBtnTxt = backBtn?.querySelector('.nx-filter-navigation__text');\r\n        const backBtnArr = backBtn?.querySelector('.nx-filter-navigation__back-btn');\r\n        const backBtnCount = backBtn?.querySelector('.nx-filter-navigation__count')\r\n\r\n        backBtn.setAttribute(\"data-key\", key)\r\n        \r\n        backBtnTxt && txt ? backBtnTxt.textContent = txt : \"\";\r\n        backBtnCount && count ? backBtnCount.textContent = count : \"\";       \r\n        backBtnTxt && backBtnCount ? backBtnTxt.appendChild(backBtnCount) : \"\";\r\n        \r\n        const backBtnContent = backBtn?.querySelector('.nx-filter-navigation__item-content');\r\n        backBtnContent?.querySelector('svg, img')?.remove();\r\n        icon && backBtnContent ? backBtnContent.prepend(icon) : \"\";\r\n\r\n        !backBtnArr && backBtn?.prepend(this.getBackBtnArrow());\r\n    }\r\n\r\n    private recoverFilterNav(): FilterNavigation {\r\n        const mainNavList = Array.from(this.element.querySelectorAll(this.options.layerSelector));\r\n        let activeIsSet = false\r\n        const activeFilterTags = []\r\n\r\n        for (let i = mainNavList.length - 1; i >=0; i--) {\r\n            let dataKey = mainNavList[i].getAttribute('data-key');\r\n            let target = mainNavList[i].querySelector(`${this.options.layerItemSelector}[data-key=\"${this.options.state[dataKey]}\"]`) as HTMLElement\r\n\r\n            if (this.options.state.hasOwnProperty(dataKey)) {\r\n                target.classList.add(this.options.activeClass);\r\n                activeFilterTags.push(target)\r\n            }\r\n        }\r\n\r\n        for (let i = mainNavList.length - 1; i >=0; i--) {\r\n            let dataKey = mainNavList[i].getAttribute('data-key');\r\n            let target = mainNavList[i].querySelector(`${this.options.layerItemSelector}[data-key=\"${this.options.state[dataKey]}\"]`) as HTMLElement\r\n\r\n            if (this.options.state.hasOwnProperty(dataKey)) {\r\n                const currentLayerID = this.getCurrentLayerID(target)\r\n                const childLayerID = this.getChildLayerID(target);\r\n                const countValue = target.querySelector('.nx-filter-navigation__count')?.textContent;\r\n                const icon = target.querySelector('svg, img')?.cloneNode(true) as HTMLElement;\r\n\r\n                if (!activeIsSet) {\r\n                    if(childLayerID) {\r\n                        this.toggleLayer(childLayerID, true);\r\n                        this.showBackButton(childLayerID, target.dataset.key, target.textContent, countValue, icon);\r\n\r\n                    } else {\r\n                        target.classList.remove(this.options.activeClass); // fix, not to show broken filter level\r\n                        const previousActiveItem = activeFilterTags.find(item => item.classList.contains(this.options.activeClass));\r\n\r\n                        this.toggleLayer(currentLayerID, true);\r\n                        previousActiveItem && this.showBackButton(currentLayerID, previousActiveItem.dataset.key, previousActiveItem.querySelector('.nx-filter-navigation__text').textContent, countValue, icon);\r\n                    }\r\n\r\n                    this._lastActiveItem = target;\r\n                    activeIsSet = !activeIsSet;\r\n                }\r\n            }\r\n        }\r\n\r\n        setTimeout(() => {\r\n            activeFilterTags.filter(item => {\r\n                item.classList.contains(this.options.activeClass) == false && item.click()\r\n            })\r\n        }, 500);\r\n\r\n        return this;\r\n    }\r\n\r\n    private toggleLayer(id: string, active?): FilterNavigation {\r\n        const layerExpandable = this.layersStructure[id],\r\n            layerNode = layerExpandable && layerExpandable.getContainer();\r\n            \r\n        if (layerNode) { \r\n            layerExpandable.toggle();\r\n            layerNode.classList.toggle('nx-filter-navigation__level--active');\r\n        } \r\n\r\n        return this;\r\n    }\r\n\r\n\r\n    hasLayerVisibleItems(node: HTMLElement): boolean {\r\n        return node && Array.from(node.querySelectorAll(this.options.layerItemSelector))?.some(itm => (<HTMLElement>itm).hidden === false);\r\n    }\r\n\r\n   private goToPreviousLevel(): FilterNavigation {\r\n        if(!this._lastActiveItem) return;\r\n\r\n        const parentLayer = this.getParentLayer(this._lastActiveItem),\r\n            previousActiveItem = parentLayer ? this.getActiveItem(parentLayer) : null,\r\n            childLayerID = this.getChildLayerID(this._lastActiveItem),\r\n            isLastLevelItem = !childLayerID;\r\n\r\n        const currentLayerID = this.getCurrentLayerID(this._lastActiveItem);\r\n        const getParentAccFilterText = previousActiveItem?.querySelector('.nx-filter-navigation__text').textContent\r\n        const icon = previousActiveItem?.querySelector('svg, img')?.cloneNode(true) as HTMLElement;\r\n\r\n        this.deleteActFilterBubble()\r\n        this.clearLayer(this.getCurrentLayer(this._lastActiveItem));\r\n        this.enableBackBtn(this._lastActiveItem.parentElement?.querySelector(`${this.options.backBtn}`) as HTMLElement)\r\n\r\n        if (!isLastLevelItem) {\r\n            this.toggleLayer(currentLayerID);\r\n            this.toggleLayer(childLayerID)\r\n            this.primeLevel.id != currentLayerID ? this.showBackButton(currentLayerID,  previousActiveItem?.dataset.key ,getParentAccFilterText, null, icon) : \"\";\r\n        }\r\n     \r\n        this.runUpdateCB()\r\n      \r\n        this._lastActiveItem = previousActiveItem;\r\n\r\n        return this;\r\n    }\r\n\r\n    private clearLayer(layer: HTMLElement): FilterNavigation {\r\n        this.getActiveItem(layer)?.classList.remove(this.options.activeClass);\r\n\r\n        return this;\r\n    }\r\n    \r\n    private deleteActFilterBubble(): void {\r\n        const activeFilterKey = this._lastActiveItem.dataset.key,\r\n            activeFilterTag = <ActiveFilterListItem>document?.querySelector(`.nx-active-filters__item[data-input-name=\"${activeFilterKey}\"]`);\r\n        \r\n        activeFilterTag && toggleSelection(activeFilterTag.inputElement, false);   \r\n    }\r\n\r\n    private getActiveItem(layer: HTMLElement): HTMLElement {\r\n        return <HTMLElement>layer.querySelector(`${this.options.layerItemSelector}.${this.options.activeClass}`);\r\n    }\r\n\r\n    private runUpdateCB(): FilterNavigation {\r\n        this.options.updateCB();\r\n        return this;\r\n    }\r\n\r\n\r\n    private getBackBtnArrow(): HTMLElement {\r\n        return createElementFromString(`\r\n            <span class=\"nx-filter-navigation__back-btn\" >\r\n                <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"10\" height=\"16\" viewBox=\"0 0 10 16\" fill=\"none\">\r\n                    <path  class=\"nx-icon-arrow-left\" d=\"M7.88912 15.7601L7.81418 15.6978L0.301439 8.66698C0.159493 8.53472 0.062067 8.36654 0.0211639 8.18318C0.0211639 8.17338 0.0211639 8.16358 0.0159178 8.15378C0.0106726 8.14397 0.00992203 8.12017 0.00767422 8.10337C0.00542641 8.08656 0.00767422 8.07186 0.00242805 8.05576C-0.00281715 8.03965 0.00242805 8.01725 0.00242805 7.99834C0.00167847 7.98715 0.00167847 7.97593 0.00242805 7.96474C0.00242805 7.9484 0.00242805 7.9323 0.00242805 7.91643C0.00242805 7.89332 0.00617599 7.87022 0.00992298 7.84641V7.83031C0.00992298 7.8058 0.0189161 7.782 0.0249109 7.76029C0.0249109 7.75119 0.0309057 7.74209 0.0339031 7.73299C0.0709162 7.60097 0.138448 7.47813 0.231745 7.37311L0.298442 7.3031L7.81567 0.28205C8.20436 -0.0811729 8.8298 -0.095356 9.23688 0.249823C9.64397 0.595 9.68933 1.17796 9.33995 1.57452L9.27326 1.64453L2.48519 7.98854L9.27326 14.334C9.6846 14.6931 9.71121 15.2943 9.33302 15.6839C8.95483 16.0736 8.31187 16.1076 7.88912 15.7601Z\"/>\r\n                </svg>\r\n            </span>\r\n        `)\r\n    }\r\n\r\n    private getDefaultOptions(): FilterNavigationOptions {\r\n        return {\r\n            layerSelector: '.nx-filter-navigation__level',\r\n            primeLayerSelector: '.nx-filter-navigation__level--prime',\r\n            layerListSelector: '.nx-filter-navigation__list',\r\n            layerItemSelector: '.nx-filter-navigation__item',\r\n            scrollBarSelector: '.nx-filter-navigation__scrollbar',\r\n            activeClass: 'nx-active',\r\n            backBtn:'.nx-filter-navigation__item--all'\r\n        };\r\n    }\r\n}\r\n\r\n\r\n\r\n// Hot Module Replacement\r\nif (module.hot) {\r\n    let nodesCache: HMRNodes[] = Array.from(document.querySelectorAll(moduleSelector)).map((element: Node) => ({ nodeToReplace: element, nodeOrigin: element.cloneNode(true) }));\r\n\r\n    FilterNavigation.setup(moduleSelector);\r\n\r\n    module.hot.accept(() => {\r\n        FilterNavigation.setup(moduleSelector);\r\n    });\r\n    module.hot.dispose(() => {\r\n        nodesCache.forEach(({ nodeToReplace, nodeOrigin }) => { nodeToReplace = nodeToReplace.parentElement.replaceChild(nodeOrigin.cloneNode(true), nodeToReplace) });\r\n    });\r\n} else {\r\n    FilterNavigation.setup(moduleSelector);\r\n}","import LayerBasic, { BasicLayerOptions } from './LayerBasic';\r\nimport { Optional } from '../typings/mapped-types';\r\nimport {\r\n    getOptions,\r\n    requestAnimationFrameTimer,\r\n    requestNextAnimationFrame,\r\n    IOSScroll,\r\n} from '../helpers/helperFunctions';\r\nimport {\r\n    addClass,\r\n    addClasses,\r\n    removeClasses,\r\n} from '../helpers/DOMHelpers';\r\n\r\nconst spinnerClasses = ['nx-u-spinner', 'nx-u-spinner--medium'];\r\n\r\nexport interface LayerAdvanceOptions extends BasicLayerOptions {\r\n    beforeOpen: AsyncCallback;\r\n    afterOpen: AsyncCallback;\r\n    beforeClose: AsyncCallback;\r\n    afterClose: AsyncCallback;\r\n}\r\n\r\nexport default class LayerAdvance extends LayerBasic {\r\n    protected options: LayerAdvanceOptions;\r\n\r\n    constructor(element: HTMLElement, options: Optional<LayerAdvanceOptions> = {}) {\r\n        super(element, options);\r\n\r\n        this.options = getOptions(this.element, this.options);\r\n\r\n        this.init();\r\n    }\r\n\r\n    protected getDefaultOptions(): Optional<LayerAdvanceOptions> {\r\n        const defOptions = super.getDefaultOptions();\r\n\r\n        return {\r\n            ...defOptions,\r\n            layerModifierClasses: `${defOptions.layerMainClass}--page`,\r\n            layerCloseBtnModifierClass: `${defOptions.layerMainClass}__close-btn--page`,\r\n            layerCloseIconClass: `${defOptions.layerCloseIconClass} nx-close-icon--thin`,\r\n            beforeOpen: async () => { await window.NiveaX.initModules(); },\r\n            afterOpen: async () => { },\r\n            beforeClose: async () => { },\r\n            afterClose: async () => { },\r\n        };\r\n    }\r\n\r\n    protected get isOpen(): boolean {\r\n        return document.body.contains(this.layer);\r\n    }\r\n\r\n    showSpinner(): LayerAdvance {\r\n        addClasses(this.layer.querySelector('.nx-layer__wrapper'), ...spinnerClasses);\r\n\r\n        if (!this.isOpen) IOSScroll.prevent(true);\r\n        super.open();\r\n\r\n        return this;\r\n    }\r\n\r\n\r\n    async open(callback: Callback = () => { }): Promise<any> {\r\n        const {\r\n            layerMainClass,\r\n            beforeOpen,\r\n            afterOpen,\r\n        } = this.options;\r\n\r\n        await beforeOpen();\r\n\r\n        this.backButton();\r\n\r\n        if (!this.isOpen) IOSScroll.prevent(true);\r\n\r\n        removeClasses(this.layer.querySelector('.nx-layer__wrapper'), ...spinnerClasses);\r\n\r\n        super.open();\r\n\r\n        requestNextAnimationFrame(() => this.layer.classList.add(`${layerMainClass}--open`));\r\n\r\n        window.NiveaX.loadShopPrices();\r\n\r\n        await afterOpen();\r\n\r\n        callback();\r\n    }\r\n\r\n    async close(callback: Callback = () => { }): Promise<any> {\r\n        const {\r\n            layerMainClass,\r\n            beforeClose,\r\n            afterClose,\r\n        } = this.options;\r\n\r\n        await beforeClose();\r\n\r\n        sessionStorage.removeItem('layers');\r\n\r\n        addClass(this.layer, `${layerMainClass}--closing`);\r\n\r\n        requestAnimationFrameTimer(() => {\r\n            removeClasses(this.layer, `${layerMainClass}--open`, `${layerMainClass}--closing`);\r\n            super.close();\r\n        }, 400);\r\n\r\n        if (document.body.classList.contains('nx-u-lock-screen') || document.body.classList.contains('nx-u-prevent-scroll'))\r\n            IOSScroll.allow();\r\n\r\n        await afterClose();\r\n\r\n        callback();\r\n    }\r\n\r\n    backButton(){\r\n        let layersArray;\r\n        let layers;\r\n        let getLayers = sessionStorage.getItem('layers');\r\n\r\n        if (getLayers) {\r\n            layersArray = JSON.parse(getLayers);\r\n\r\n            if (layersArray.includes(location.hash)) {\r\n                let index = layersArray.findIndex(i => i == location.hash) + 1;\r\n                layersArray = layersArray.slice(0, index);\r\n                layers = [...layersArray]\r\n            } else {\r\n                layers = [...layersArray, location.hash]\r\n            }\r\n        } else {\r\n            layers = [location.hash]\r\n        }\r\n\r\n        sessionStorage.setItem('layers', `${JSON.stringify(layers)}`);\r\n\r\n        if (layers.length > 1) {\r\n            this.layer.classList.add('nx-layer--show-back-tbn');\r\n        } else {\r\n            this.layer.classList.remove('nx-layer--show-back-tbn');\r\n        }\r\n    }\r\n}\r\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function takeWhile(predicate, inclusive) {\n    if (inclusive === void 0) {\n        inclusive = false;\n    }\n    return function (source) {\n        return source.lift(new TakeWhileOperator(predicate, inclusive));\n    };\n}\nvar TakeWhileOperator = /*@__PURE__*/ (function () {\n    function TakeWhileOperator(predicate, inclusive) {\n        this.predicate = predicate;\n        this.inclusive = inclusive;\n    }\n    TakeWhileOperator.prototype.call = function (subscriber, source) {\n        return source.subscribe(new TakeWhileSubscriber(subscriber, this.predicate, this.inclusive));\n    };\n    return TakeWhileOperator;\n}());\nvar TakeWhileSubscriber = /*@__PURE__*/ (function (_super) {\n    tslib_1.__extends(TakeWhileSubscriber, _super);\n    function TakeWhileSubscriber(destination, predicate, inclusive) {\n        var _this = _super.call(this, destination) || this;\n        _this.predicate = predicate;\n        _this.inclusive = inclusive;\n        _this.index = 0;\n        return _this;\n    }\n    TakeWhileSubscriber.prototype._next = function (value) {\n        var destination = this.destination;\n        var result;\n        try {\n            result = this.predicate(value, this.index++);\n        }\n        catch (err) {\n            destination.error(err);\n            return;\n        }\n        this.nextOrComplete(value, result);\n    };\n    TakeWhileSubscriber.prototype.nextOrComplete = function (value, predicateResult) {\n        var destination = this.destination;\n        if (Boolean(predicateResult)) {\n            destination.next(value);\n        }\n        else {\n            if (this.inclusive) {\n                destination.next(value);\n            }\n            destination.complete();\n        }\n    };\n    return TakeWhileSubscriber;\n}(Subscriber));\n//# sourceMappingURL=takeWhile.js.map\n","import {\r\n    fromEvent,\r\n    of,\r\n    combineLatest,\r\n} from 'rxjs';\r\nimport {\r\n    takeUntil,\r\n    takeWhile,\r\n    switchMap,\r\n    filter,\r\n    map,\r\n    tap,\r\n} from 'rxjs/operators';\r\n\r\nimport LayerAdvance, { LayerAdvanceOptions } from './LayerAdvance';\r\nimport { Optional } from '../typings/mapped-types';\r\nimport { requestAnimationFrameTimer } from '../helpers/helperFunctions';\r\nimport { hasClass, objectToStyleString } from '../helpers/DOMHelpers';\r\n\r\nconst moduleSelector = '[data-module=\"LayerPage\"]';\r\n\r\nexport default class LayerPage extends LayerAdvance {\r\n    static setup(selector: string = moduleSelector): void {\r\n        Array.from(document.querySelectorAll(selector)).filter((node: HTMLElement) => !node.dataset.moduleInitialized).forEach((element: HTMLElement) => {\r\n            new LayerPage(element);\r\n            element.dataset.moduleInitialized = 'true';\r\n        });\r\n    }\r\n\r\n    constructor(element: HTMLElement, options: Optional<LayerAdvanceOptions> = {}) {\r\n        super(element, options);\r\n\r\n        this.listenToEvents();\r\n    }\r\n\r\n    protected getDefaultOptions(): Optional<LayerAdvanceOptions> {\r\n        const defOptions = super.getDefaultOptions();\r\n\r\n        return {\r\n            ...defOptions,\r\n            layerModifierClasses: `${defOptions.layerMainClass}--page`,\r\n            layerCloseBtnModifierClass: `${defOptions.layerMainClass}__close-btn--page`,\r\n            layerCloseIconClass: `${defOptions.layerCloseIconClass} nx-close-icon--thin`,\r\n            beforeOpen: async () => { await NiveaX.initModules(); },\r\n            afterOpen: async () => {\r\n             },\r\n            beforeClose: async () => { },\r\n            afterClose: async () => { },\r\n        };\r\n    }\r\n\r\n    private listenToEvents(): LayerPage {\r\n        const touchStart$ = fromEvent(this.layerContent, 'touchstart', { passive: true }).pipe(filter((e: TouchEvent) => e.target === e.currentTarget)),\r\n            touchEnd$ = fromEvent(document, 'touchend', { passive: true }).pipe(tap(() => requestAnimationFrame(() => this.wrapper.removeAttribute('style')))),\r\n            touchMove$ = fromEvent(document, 'touchmove', { passive: true }).pipe(map((e: TouchEvent) => e.changedTouches[0].clientY)),\r\n            { layerMainClass } = this.options;\r\n\r\n        const layerMove$ = touchStart$.pipe(\r\n            map((e: TouchEvent) => e.changedTouches[0].clientY),\r\n            switchMap(startY => combineLatest(of(startY), touchMove$)\r\n                .pipe(\r\n                    takeUntil(touchEnd$),\r\n                    takeWhile(() => !hasClass(this.layer, `${layerMainClass}--closing`))))\r\n        );\r\n\r\n        layerMove$.subscribe(([startY, moveY]) => {\r\n            const offsetHeight = document.documentElement.offsetHeight,\r\n                endPoint = offsetHeight * 0.3,\r\n                translateY = moveY - startY,\r\n                percentResult = translateY / endPoint;\r\n\r\n            const styles = {\r\n                transform: `translateY(${Math.max(translateY, 0)}px) scale(${Math.min(1 - (0.2 * percentResult), 1)})`,\r\n                transition: 'none',\r\n                overflow: 'hidden',\r\n                opacity: Math.min(1 - (0.6 * percentResult), 1),\r\n            }\r\n\r\n            if (percentResult < 1) {\r\n                this.wrapper.setAttribute('style', objectToStyleString(styles));\r\n            } else {\r\n                this.close();\r\n                requestAnimationFrameTimer(() => {\r\n                    this.wrapper.removeAttribute('style');\r\n                }, 300);\r\n            }\r\n        });\r\n\r\n        return this;\r\n    }\r\n\r\n    getLayerNode(): HTMLElement {\r\n        return this.layer;\r\n    }\r\n}\r\n\r\n// Hot Module Replacement\r\nif (module.hot) {\r\n    let nodesCache: HMRNodes[] = Array.from(document.querySelectorAll(moduleSelector)).map((element: Node) => ({ nodeToReplace: element, nodeOrigin: element.cloneNode(true) }));\r\n\r\n    LayerPage.setup(moduleSelector);\r\n\r\n    module.hot.accept(() => {\r\n        LayerPage.setup(moduleSelector);\r\n    });\r\n    module.hot.dispose(() => {\r\n        nodesCache.forEach(({ nodeToReplace, nodeOrigin }) => { nodeToReplace = nodeToReplace.parentElement.replaceChild(nodeOrigin.cloneNode(true), nodeToReplace) });\r\n    });\r\n} else {\r\n    LayerPage.setup(moduleSelector);\r\n}"],"names":["Expandable","constructor","container","options","this","active","className","includes","Object","assign","getDefaultOptions","init","setElementHeight","getSuitableHeight","setOnResizeHandler","saveInitialHeight","height","getElementHeight","element","offsetHeight","collapsedHeight","style","maxHeight","toggleState","NiveaX","addToEventStore","onResize","window","setCollapsedHeight","value","toggle","isActive","needToBeShown","clear","render","getContainer","opaqueSpinnerClasses","URLChecker","handlers","addHandlers","entries","forEach","name","handler","urlSearchParams","URLSearchParams","location","search","hidePageOnFastForward","createSourceCookieIfNeeded","params","getURLParams","handlerName","arg","hash","match","layer","serviceLayer","sessionStorage","removeItem","src","get","utmParams","utm_source","utm_medium","utm_campaign","utm_content","utm_term","keys","key","queryString","toString","document","body","queries","indexQuery","indexPair","split","queryKey","decodeURIComponent","length","mode","openAsync","showgrid","GridBuilder","nojs","JSLoader","parseInt","buildGrid","classList","add","debug","getDebug","grid","getGrid","i","col","getColumn","appendChild","createElement","zIndex","onModulesLoaded","writeToHTMLNode","content","removeEventListener","saveHTMLInnerTo","runAfterAppInitialized","documentElement","innerHTML","func","addEventListener","YouTubeManager","ytModules","playerId","onIFrameApiLoaded","bind","removeBlocker","iFrameApiLoaded","registerIFrameVideo","ytModule","undefined","getNewPlayerId","push","player","pauseAllVideos","module","pauseVideo","pauseYouTubeVideoById","youTubeVideoId","map","youTubeId","getPlayerState","moduleSelector","FilterNavigation","setup","selector","Array","from","querySelectorAll","filter","node","dataset","moduleInitialized","primeLevel","querySelector","primeLayerSelector","layerItems","getLayerItems","layerItemSelector","layerLists","layerListSelector","layersStructure","getLayersStructure","state","initHorizontalScrolling","initExpanderFirtAndLast","addHandlerOnLayerItemsClick","recoverFilterNav","togglePrimeLayer","initHeightObserver","setHeight","activeChild","requestAnimationFrame","mutationObserver","MutationObserver","mutations","mutation","type","attributeName","resizeObserver","ResizeObserver","children","child","observe","attributes","layerSelector","list","getAttribute","some","hasOwnProperty","toggleLayer","id","getChildLayerID","getCurrentLayerID","item","getCurrentLayer","closest","getParentLayerID","parentId","getParentLayer","getElementById","itemSelector","reduce","structure","itm","btn","goToPreviousLevel","l","onLayerItemClick","event","target","_lastActiveItem","currentTarget","childLayerID","activeSiblings","parentElement","activeClass","countValue","textContent","icon","cloneNode","backBtn","removePrevActiveSibls","isActiveFilter","contains","runUpdateCB","showBackButton","updateCB1","disableBackBtn","enableBackBtn","parentLayer","previousActiveItem","getActiveItem","remove","activeItem","layerId","txt","count","backBtnTxt","backBtnArr","backBtnCount","setAttribute","backBtnContent","prepend","getBackBtnArrow","mainNavList","activeIsSet","activeFilterTags","dataKey","currentLayerID","find","setTimeout","click","layerExpandable","layerNode","hasLayerVisibleItems","hidden","isLastLevelItem","getParentAccFilterText","deleteActFilterBubble","clearLayer","activeFilterKey","activeFilterTag","inputElement","updateCB","scrollBarSelector","spinnerClasses","LayerAdvance","super","defOptions","layerModifierClasses","layerMainClass","layerCloseBtnModifierClass","layerCloseIconClass","beforeOpen","async","initModules","afterOpen","beforeClose","afterClose","isOpen","showSpinner","prevent","open","callback","backButton","loadShopPrices","close","allow","layersArray","layers","getLayers","getItem","JSON","parse","index","findIndex","slice","setItem","stringify","TakeWhileOperator","predicate","inclusive","prototype","call","subscriber","source","subscribe","TakeWhileSubscriber","_super","destination","_this","_next","result","err","error","nextOrComplete","predicateResult","Boolean","next","complete","Subscriber","LayerPage","listenToEvents","touchStart$","fromEvent","layerContent","passive","pipe","e","touchEnd$","tap","wrapper","removeAttribute","touchMove$","changedTouches","clientY","switchMap","startY","combineLatest","of","takeUntil","lift","moveY","translateY","percentResult","styles","transform","Math","max","min","transition","overflow","opacity","getLayerNode"],"sourceRoot":""}